package com.huike.report.mapper;

import com.huike.report.domain.vo.BusinessChangeVO;
import com.huike.report.domain.vo.SaleStatisticVO;
import com.huike.report.domain.vo.VulnerabilityMapVo;
import org.apache.ibatis.annotations.Param;

import java.util.List;
import java.util.Map;

/**
 * 首页统计分析的Mapper
 * @author Administrator
 *
 */
public interface ReportMapper {
	/**=========================================基本数据========================================*/
	/**
	 * 获取线索数量
	 * @param beginCreateTime	开始时间
	 * @param endCreateTime		结束时间
	 * @param username			用户名
	 * @return
	 */
	Integer getCluesNum(@Param("startTime") String beginCreateTime,
						@Param("endTime") String endCreateTime,
						@Param("username") String username);

	/**
	 * 获取商机数量
	 * @param beginCreateTime	开始时间
	 * @param endCreateTime		结束时间
	 * @param username			用户名
	 * @return
	 */
	Integer getBusinessNum(@Param("startTime") String beginCreateTime,
						   @Param("endTime") String endCreateTime,
						   @Param("username") String username);

	/**
	 * 获取合同数量
	 * @param beginCreateTime	开始时间
	 * @param endCreateTime		结束时间
	 * @param username			用户名
	 * @return
	 */
	Integer getContractNum(@Param("startTime") String beginCreateTime,
						   @Param("endTime") String endCreateTime,
						   @Param("username") String username);

	/**
	 * 获取合同金额
	 * @param beginCreateTime	开始时间
	 * @param endCreateTime		结束时间
	 * @param username			用户名
	 * @return
	 */
	Double getSalesAmount(@Param("startTime") String beginCreateTime,
						  @Param("endTime") String endCreateTime,
						  @Param("username") String username);


	/**=========================================今日简报========================================*/
	Integer getTodayClusNum(@Param("userId") Long userId, @Param("date") String date);

	Integer getTodayBusinessNum(@Param("userId")Long userId, @Param("date")String date);

	Integer getTodayContractNum(@Param("username")String username, @Param("date")String date);

	Double getTodaySalesAmount(@Param("username")String username, @Param("date")String date);


	/**========================查询当前用户待跟进的 线索，商机，和待分配的线索和商机=======================*/

	Integer getTofollowedCluesNum(@Param("userId") Long userId,@Param("startTime") String beginCreateTime,@Param("endTime") String endCreateTime);

	Integer getTofollowedBusinessNum(@Param("userId") Long userId, @Param("startTime")String beginCreateTime,@Param("endTime") String endCreateTime);

	Integer getToallocatedCluesNum(@Param("startTime")String beginCreateTime, @Param("endTime")String endCreateTime);

	Integer getToallocatedBusinessNum(@Param("startTime")String beginCreateTime,@Param("endTime")String endCreateTime);

	/** ================学科客户分布饼图:统计在时间段内每个学科的报名情况和占比==================**/
	List<Map<String,Integer>> subjectStatistics(@Param("startTime")String beginCreateTime, @Param("endTime") String endCreateTime);

	/** ========== 綫索轉化率漏斗圖 需要返回四條數據：綫索數量、有效綫索數、商機數量、合同數量 ===============**/
	Integer getVulnerabilityCluesNums(@Param("startTime")String beginCreateTime,@Param("endTime") String endCreateTime);

	Integer getVulnerabilityEffectiveCluesNums(@Param("startTime")String beginCreateTime, @Param("endTime")String endCreateTime);

	Integer getVulnerabilityBusinessNums(@Param("startTime")String beginCreateTime, @Param("endTime")String endCreateTime);

	Integer getVulnerabilityContractNums(@Param("startTime")String beginCreateTime,@Param("endTime") String endCreateTime);


	/** =============== 商机转化龙虎榜接口 用戶名稱、部門名稱、轉化數量、轉化率 =====================**/
	List<BusinessChangeVO> getBusinessChange(@Param("startTime")String beginCreateTime, @Param("endTime")String endCreateTime);

	Integer getAllBusinessNum(@Param("startTime") String beginCreateTime, @Param("endTime") String endCreateTime);

	/** ==============线索转化龙虎榜接口 用戶名稱、部門名稱、轉化條數、轉化率===============**/
	List<SaleStatisticVO> salesStatistic(@Param("startTime")String beginCreateTime, @Param("endTime")String endCreateTime);

	Integer getAllCluesNum(@Param("startTime")String beginCreateTime, @Param("endTime")String endCreateTime);
}
